/**
* Copyright (c) 2015
*
* Licensed under the UCG License, Version 1.0 (the "License");
*/
package com.siso.app.widget.tag;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.RelativeLayout.LayoutParams;
import com.siso.app.entity.Position;
import com.siso.app.entity.TagInfo;
import com.siso.app.ui.R;
/**
* description :
*
* @version 1.0
* @author Owater
* @createtime : 2015-5-1 下午2:36:03
*
* 修改历史:
* 修改人 修改时间 修改内容
* --------------- ------------------- -----------------------------------
* Owater 2015-5-1 下午2:36:03
*
*/
public class TagViewRight extends TagView {
private int screenWidth,screenHeight;
private int lastX,lastY;
private RelativeLayout rLayout;
public TagViewRight(Context context) {
super(context);
}
public TagViewRight(Context context, AttributeSet attrs,int screenWidth,int screenHeight,Position position,TagInfo tagInfo,boolean isMove) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.tag_view_right, this);
this.screenWidth=screenWidth;
this.screenHeight=screenHeight;
this.position = position;
this.tagInfo = tagInfo;
init(isMove);
}
private void init(boolean isMove){
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(position.getXplace(), position.getYplace(), 0, 0);
this.setLayoutParams(lp);
textView = (TextView)findViewById(R.id.text);
textView.setText(tagInfo.getTitle());
rLayout = this;
this.setClickable(true);
icon_brandimg = (ImageView) findViewById(R.id.icon_brand);
blackIconimg1 = (ImageView) findViewById(R.id.blackIcon1);
blackIconimg2 = (ImageView) findViewById(R.id.blackIcon2);
if(isMove) initMove();
}
private void initMove() {
OnTouchListener onTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX=(int)event.getRawX();
lastY=(int)event.getRawY();
// System.out.println("lastX="+lastX);
break;
case MotionEvent.ACTION_MOVE:
int area = rLayout.getHeight();
int dx=(int)event.getRawX()-lastX;
int dy=(int)event.getRawY()-lastY;
int top=v.getTop()+dy;
int left=v.getLeft()+dx;
if(top<=0) top=0;
if(left<=0) left=0;
// System.out.println("screenHeight="+screenHeight);
if(top>=screenHeight-area)
{
top=screenHeight-area;
}
if(left>=screenWidth-rLayout.getWidth())
{
left=screenWidth-rLayout.getWidth();
}
// System.out.println("left="+left+"top="+top);
// v.layout(left, top, left+rLayout.getWidth(), top+area);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(left, top, left+rLayout.getWidth(), top+area);
v.setLayoutParams(lp);
position.setXplace(left);
position.setYplace(top);
lastX=(int)event.getRawX();
lastY=(int)event.getRawY();
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}
};
rLayout.setOnTouchListener(onTouchListener);
}
}